from define import *

INLINE_TXT_H = '''
'''

INLINE_TXT_CPP = '''
#include "stdafx.h"
'''

INTERFACE_EXT = 'cpp2py'

VOID_TYPE = ['void']

INT_TYPE = ['BOOL', 
            'int',
            'signed int', 
            'RESOURCE_TYPE', 
            'ENTITY_RENDER_TYPE', 
            'ENTITY_TYPE',
            'HWND', 
            'RENDER_DEVICE_OPTION',
            'RENDER_DEVICE_TYPE',
            'TERRAIN_BRUSH_TYPE',
            'PIXEL_FORMAT',
            'TEXTURE_USAGE',   
            'SKY_BOX_PLANE',
            'PARTICLE_TYPE',
            'PARTICLE_RENDER_BLEND_MODE',
            'PARTICLE_EMITTER_SHAPE_TYPE',
            'PARTICLE_EMITTER_MODIFIER_TYPE',
            'PARTICLE_MODIFIER_TYPE',         
]

BYTE_TYPE = ['BYTE', 'unsigned char']
            
UINT_TYPE = ['unsigned int']

ULONG_TYPE = ['DWORD', 'unsigned long']

STR_TYPE = ['TCHAR*', 'const TCHAR*', 'const char*', 'char*']

STD_STR_TYPE = ['std::string', 'string']

FLOAT_TYPE = ['FLOAT', 'float']

WCHAR = False

Vector3F = STRUCT_DEF()
Vector3F._paramList.append(PARAM_DEF('FLOAT', 'x'))
Vector3F._paramList.append(PARAM_DEF('FLOAT', 'y'))
Vector3F._paramList.append(PARAM_DEF('FLOAT', 'z'))

Vector2F = STRUCT_DEF()
Vector2F._paramList.append(PARAM_DEF('FLOAT', 'x'))
Vector2F._paramList.append(PARAM_DEF('FLOAT', 'y'))

Quaternion = STRUCT_DEF()
Quaternion._paramList.append(PARAM_DEF('FLOAT', 'x'))
Quaternion._paramList.append(PARAM_DEF('FLOAT', 'y'))
Quaternion._paramList.append(PARAM_DEF('FLOAT', 'z'))
Quaternion._paramList.append(PARAM_DEF('FLOAT', 'w'))

Rect2D = STRUCT_DEF()
Rect2D._paramList.append(PARAM_DEF('FLOAT', 'leftTop.x'))
Rect2D._paramList.append(PARAM_DEF('FLOAT', 'leftTop.y'))
Rect2D._paramList.append(PARAM_DEF('FLOAT', 'rightBottom.x'))
Rect2D._paramList.append(PARAM_DEF('FLOAT', 'rightBottom.y'))

RectColor = STRUCT_DEF()
RectColor._paramList.append(PARAM_DEF('DWORD', 'leftTop'))
RectColor._paramList.append(PARAM_DEF('DWORD', 'rightTop'))
RectColor._paramList.append(PARAM_DEF('DWORD', 'leftBottom'))
RectColor._paramList.append(PARAM_DEF('DWORD', 'rightBottom'))

AABB = STRUCT_DEF()
AABB._paramList.append(PARAM_DEF('FLOAT', 'minPt.x'))
AABB._paramList.append(PARAM_DEF('FLOAT', 'minPt.y'))
AABB._paramList.append(PARAM_DEF('FLOAT', 'minPt.z'))
AABB._paramList.append(PARAM_DEF('FLOAT', 'maxPt.x'))
AABB._paramList.append(PARAM_DEF('FLOAT', 'maxPt.y'))
AABB._paramList.append(PARAM_DEF('FLOAT', 'maxPt.z'))

STRUCT_DICT = {
   'D3DXVECTOR3' : Vector3F,
   'D3DXVECTOR2' : Vector2F,
   'D3DXQUATERNION' : Quaternion,
   'Rect2D' : Rect2D,
   'RectColor' : RectColor,
   'AABB' : AABB,
}

ATOM_TYPE_LIST = [VOID_TYPE, INT_TYPE, UINT_TYPE, ULONG_TYPE, STR_TYPE, STD_STR_TYPE, FLOAT_TYPE, BYTE_TYPE]
TYPE_LIST = ATOM_TYPE_LIST + [STRUCT_DICT]


